
namespace _5 {


    // 定义两个接口
    interface Person {
        name: string;
        age: number;
    }

    interface Employee {
        salary: number;
        // age: number ;
    }

    // 使用交叉类型创建一个新的接口，同时拥有Person和Employee的特性
    type CompositePerson = Person & Employee;

    // 使用复合型接口
    let person: CompositePerson = {
        name: 'Alice',
        age: 1,
        salary: 50000
    };


    /**
     * 联合类型
     */
    var a1: string | number = "hello";
    a1 = 1;

    interface IStudent {
        name: string,
        age?: number,
        [propName: string]: any
        // [propName:string]:Object | undefined
    }
}